package demo1;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 苏李涛
 * Date: 2024-10-11
 * Time: 20:44
 */
public class Demo6 {
    /**
     * isInterrupted()方法说明：如果当前线程被中断，则返回 true；否则返回 false
     * currentThread()方法说明: 返回当前正在执行的线程对象的引用
     * @param args
     * @throws InterruptedException
     */
    public static void main(String[] args) throws InterruptedException {
        Thread t = new Thread(() -> {
            // 这个代码是在 lambda 中 (也就是在 t 线程的入口方法中) 调用的
            // 返回结果就是 t
             System.out.println("t: " + Thread.currentThread().getName());
            while (!Thread.currentThread().isInterrupted()) {
                System.out.println("hello thread");
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                     //这个线程掀桌了
                    throw new RuntimeException(e);

                }
            }
            System.out.println("t 结束");
        });
        t.start();

        Thread.sleep(3000);
        System.out.println("main 线程尝试终止 t 线程");
        t.interrupt();

        // 这个代码是在 main 方法中调用的, 此时返回结果就是 main
         System.out.println("main: " + Thread.currentThread().getName());
    }
}
